import {getSurveysApi} from "../apis/SurveysApi.js";
import {Message} from "@arco-design/web-vue";
import {DEV_SURVEYS_KEY, IS_PREVIEW_DEV_KEY} from "../config/index.js";
import {router} from "../router/index.js";

/**
 * 根据id 跳转到问卷预览界面
 * @param id
 */
export async function goPreviewSurveys(id) {
    if (!id) {
        return Message.error('问卷id为空')
    }
    //获取问卷详情
    const res = await getSurveysApi(id)
    if (res.code === 0) {
        //先将当前数据 保存到 sessionStorage
        sessionStorage.setItem(DEV_SURVEYS_KEY,JSON.stringify(res.data))
        sessionStorage.setItem(IS_PREVIEW_DEV_KEY,'true')
        //跳转到专门的preview-dev路由 再从localStorage中获取数据进行预览
        await router.push("/preview-dev")
    } else {
        Message.error(res.message)
    }
}

/**
 * 获取 校验对象
 * @param question 题目对象
 */
export const getInputRules = (question) => {
    let rules = []
    if (question.required === 1){
       rules.push({
           required: true,
           trigger: "change",
           message: `该题目输入不能为空`

       })
    }
    // if (question.type === 2 ){
    //     if (question.inputType === 'email'){
    //
    //     }
    // }
    return rules
}

/**
 * 获取Echarts option
 * 将后端数据转化为饼图
 */
export function getPieOption(question,type) {
    //饼图
    if (type === 1){
        type = "pie"
    }
    //柱状图
    if (type === 2){
        type  =  "bar"
    }
    let option = {
        tooltip: {
            trigger: "item",
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },

        series: [
            {
                name: "回答次数",
                type: type,
                radius: "55%",
                center: ["50%", "60%"],
                data: [],
                emphasis: {
                    itemStyle: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: "rgba(0, 0, 0, 0.5)"
                    }
                }
            }
        ]
    }

    let list  = question.list;
    //转为option 需要的data
    list.forEach(item => {
        option.series[0].data.push({
            value: item.count,
            name: item.value
        })
    })
    //柱状图时 设置x轴
    if (type === "bar"){
        option.yAxis={
            type: 'value'
        }
        option.xAxis = {
            type: 'category',
            data: []
        }
        option.xAxis.data = list.map(item => item.value)
    }

    return option;
}
/**
 * 获取问卷状态文本值
 * 状态 0 未发布 1已发布 2已关闭
 */
export function getSurveysStatusText(status) {
    switch (status) {
        case 0:
            return '未发布';
        case 1:
            return '已发布';
        case 2:
            return '已关闭';
        default:
            return '未知';
    }
}

/**
 * 获取问卷审核状态文本值
 * 状态 状态 0 待审核 1审核通过 2审核不通过
 */
export function getAuditStatusText(status) {
    switch (status) {
        case 0:
            return '待审核';
        case 1:
            return '审核通过';
        case 2:
            return '审核不通过';
        default:
            return '未知';
    }
}

/**
 * 获取题目类型
 * 状态 0 未发布 1已发布 2已关闭
 */
export function getQuestionTypeText(type) {
    switch (type) {
        case 0:
            return '单选题';
        case 1:
            return '多选题';
        case 2:
            return '单行输入';
        case 3:
            return '多行输入';
        case 4:
            return '评分';
        case 5:
            return '时间选择';
        default:
            return '未知';
    }
}


/**
 * 获取分享链接
 */
export function getShareUrl(id) {
    return `${window.location.origin}/preview/${id}`;
}